Docker Compose 部署 WordPress + 宿主机 Nginx 实现 HTTPS 反向代理

架构概览

用户浏览器 (HTTPS)

宿主机 Nginx (监听 443 端口,启用 HTTPS)

反向代理至宿主机端口 (如 8080)

Docker Compose 内部 Nginx (监听 80)

WordPress + PHP-FPM + MySQL

推荐架构组成

1. Docker Compose 内部服务:

WordPress:运行在 wordpress:6.x-fpm 镜像中,负责 PHP 动态渲染。

Nginx(容器):作为反向代理,代理请求到 PHP-FPM。

MySQL:数据库容器,提供数据支持。

2. 宿主机服务:

Nginx(宿主机安装):监听 443 端口,启用 HTTPS,反向代理到容器内的 Nginx(或直接到 PHP)。

为什么推荐宿主机部署 Nginx 并做 HTTPS 反向代理?

1. 更灵活的 HTTPS 证书管理

– 使用 Let’s Encrypt 获取免费 SSL 证书更方便(如用 certbot)。

– 避免将私钥、证书挂载到容器中,提高安全性。

2. 避免容器内直接监听 443 端口

– 宿主机 443 端口通常是保留端口,非 root 用户无法监听。

– 容器内监听 443 会增加网络映射和权限配置的复杂性。

3. 分离 HTTPS 与应用逻辑,更清晰的职责划分

– 宿主机 Nginx 专注于 TLS 协议、证书更新。

– 容器 Nginx 专注于应用反代、静态资源处理。

4. 方便统一管理多个站点或服务

– 宿主机 Nginx 可统一处理多个域名、站点的 HTTPS 配置。

– 每个站点可以独立配置反代目标。

5. 便于调试、日志分析和性能优化

– HTTPS 层面日志和限流等可独立在宿主机 Nginx 中处理。

– 不需要每次调整 HTTPS 都重新构建容器。

2. 宿主机 Nginx HTTPS 配置:

server {
  listen 443 ssl;
  server_name yourdomain.com;

  ssl_certificate     /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

  location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto https;
  }
}

3. WordPress 配置建议(wp-config.php):

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
  $_SERVER['HTTPS'] = 'on';
}

define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');

总结

目标推荐做法
启用 HTTPS使用宿主机 Nginx 管理证书
WordPress 识别 HTTPS设置 X-Forwarded-Proto 和 $_SERVER[‘HTTPS’]
URL 显示 https://设置 WP_HOME 和 WP_SITEURL
更安全的架构TLS/SSL 与应用分离部署

附加建议

配合 Cloudflare/CDN 可进一步提升性能和安全性。

定期用 certbot renew 自动更新 HTTPS 证书。

宿主机 Nginx 可以做缓存、限流、WAF 等高级功能。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇